home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt40s5.arc / SCROLLOC.MOD < prev    next >
Text File  |  1986-12-26  |  3KB  |  44 lines

  1. (*----------------------------------------------------------------------*)
  2. (*         Scroll_Lock_On --- Check if scroll lock key depressed        *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. FUNCTION Scroll_Lock_On : BOOLEAN;
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Function:   Scroll_Lock_On                                       *)
  10. (*                                                                      *)
  11. (*     Purpose:    Check if scroll lock key depressed                   *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Lock_On := Scroll_Lock_On : BOOLEAN;                          *)
  16. (*                                                                      *)
  17. (*           Lock_On --- TRUE if scroll lock turned on                  *)
  18. (*                                                                      *)
  19. (*----------------------------------------------------------------------*)
  20.  
  21. BEGIN (* Scroll_Lock_On *)
  22.  
  23. INLINE(
  24.   $B4/$02                     {          MOV    AH,2                       ;Return keyboard flags function}
  25.   /$CD/$16                    {          INT    $16                        ;Call BIOS to get flags}
  26.                               {;}
  27.   /$F6/$06/>DO_STATUS_TIME/$01{          TEST   BYTE [<Do_Status_Time],1   ;See if we're doing status time}
  28.   /$74/$08                    {          JZ     Scrolck1                   ;No -- skip update}
  29.                               {;}
  30.   /$50                        {          PUSH   AX                         ;Save function result}
  31.   /$8D/$1E/>UPDATE_STATUS_LINE{          LEA    BX,[>Update_Status_Line]   ;Update status line time}
  32.   /$FF/$D3                    {          CALL   BX}
  33.   /$58                        {          POP    AX                         ;Get back function result}
  34.                               {;}
  35.   /$B1/$04                    {Scrolck1: MOV    CL,4                       ;Shift to bring scroll lock to last bit}
  36.   /$D2/$F8                    {          SAR    AL,CL                      ;Move scroll lock flag to last bit}
  37.   /$25/$01/$00                {          AND    AX,1                       ;Clear all other bits but last}
  38.   /$89/$EC                    {          MOV    SP,BP                      ;Restore registers}
  39.   /$5D                        {          POP    BP}
  40.   /$C2/$01/$00                {          RET    1                          ;Return to caller}
  41. );
  42.  
  43. END   (* Scroll_Lock_On *);
  44.